package web.administrador;

import JPAControllers.LoginJpaController;
import Persistencia.*;
import controladores.ControladorFisioterapeuta;
import controladores.ControladorLogin;
import dominio.login;
import web.usuarios.*;
import Persistencia.*;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import controladores.*;
import dominio.SesionDomain;
import java.util.HashMap;
import java.util.Map;
/**
 * Este controlador se encarga de recibir los datos a modificarse del login de un fisioterapeuta y realizar la modificacion de este.
 * 
 */
public class ControladorModificarLogin extends SimpleFormController{

    ControladorFisioterapeuta controladorFisio;
    ControladorLogin controladorLog;
    Login obj;


    public ModelAndView onSubmit(Object command) throws ServletException {
        controladorFisio = new ControladorFisioterapeuta();
        login log = (login) command;
        Integer idFisio = log.getIdFisioterapeuta();
        System.out.println("parametro en ControladorModificarLogin "+log.getIdFisioterapeuta());
        if(idFisio != null){
            controladorFisio = new ControladorFisioterapeuta();
            controladorLog = new ControladorLogin();
            String id = ""+idFisio;
            obj = controladorFisio.buscarLoginFisioterapeuta(id);
            Login logNuevo = new Login();
            logNuevo.setFisioterapeuta(obj.getFisioterapeuta());
            if(obj!=null){
                logNuevo.setLogin(log.getUsuario());
                logNuevo.setContrasena(log.getContrasena());
                controladorLog.modificarLogin(obj,logNuevo);
            }
            return new ModelAndView("administrarFisioterapeutas", "model", controladorFisio.encontrarFisioterapeutas());
        }else{
            return new ModelAndView("administrarFisioterapeutas", "model", controladorFisio.encontrarFisioterapeutas());
        }
    }

    protected Object formBackingObject(HttpServletRequest request) throws ServletException {
        controladorLog = new ControladorLogin();
        controladorFisio = new ControladorFisioterapeuta();
        login log = new login();
        System.out.println("id para login "+request.getParameter("id_fisio"));
        Login l = controladorFisio.buscarLoginFisioterapeuta(request.getParameter("id_fisio"));
        System.out.println("loooogin "+l);
        log.setUsuario(l.getLogin());
        log.setContrasena(l.getContrasena());
        log.setIdFisioterapeuta(l.getFisioterapeuta().getIdFisioterapeuta());
        return log;
    }

    public void setControladorFisioterapeuta(ControladorFisioterapeuta productManager) {
        this.controladorFisio = productManager;
    }

    public ControladorFisioterapeuta getControladorFisioterapeuta() {
        return controladorFisio;
    }

    @SuppressWarnings("unchecked")
    @Override
    protected Map referenceData(HttpServletRequest request) throws Exception {
        Map referenceData = new HashMap();
        return referenceData;
    }
}